package com.itheima.utils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;
import java.util.Map;

/**
 * @author zzw
 * @date 2025/4/29
 * @description
 */
public class JwtUtils {

    private static final String signKey = "SVRIRUlNQQ==";
    private static final Long expire = 43200000L;// 12小时

    /**
     * 生成JWT令牌
     *
     * @return JWT令牌
     */
    public static String generateJwt(Map<String, Object> claims) {
        return Jwts.builder().addClaims(claims).signWith(SignatureAlgorithm.HS256, signKey).setExpiration(new Date(System.currentTimeMillis() + expire)).compact();
    }

    /**
     * 解析JWT令牌
     *
     * @param jwt JWT令牌
     * @return JWT第二部分负载 payload 中存储的内容
     */
    public static Claims parseJWT(String jwt) {
        return Jwts.parser().setSigningKey(signKey).parseClaimsJws(jwt).getBody();
    }
}
